package com.hedl.practice.diyJava.multithreading.thread_state.test;

public class Study_1 {
    /**
     * 线程终止的原因有：
     *      线程正常终止：run()方法执行到return语句返回；
     *      线程意外终止：run()方法因为未捕获的异常导致线程终止；
     *      对某个线程的Thread实例调用stop()方法强制终止（强烈不推荐使用）。
     *
     * 小结：
     *      Java线程对象Thread的状态包括：New、Runnable、Blocked、Waiting、Timed Waiting和Terminated；
     *      通过对另一个线程对象调用join()方法可以等待其执行结束；
     *      可以指定等待时间，超过等待时间线程仍然没有结束就不再等待；
     *      对已经运行结束的线程调用join()方法会立刻返回。
     * @param args
     * @throws InterruptedException
     */
    public static void main(String[] args) throws InterruptedException {
        Thread t = new Thread(()->{
            System.out.println("hello");
        });

        System.out.println("Start");
        t.start();
        t.join();
        System.out.println("end");
    }
}
